package q152_maxProduct;

public class Solution_2 {
    /*
    相较于solution1
    我们可以不使用数组来解决该问题
     */
    public int maxProduct(int[] nums) {
        int minF = nums[0], maxF = nums[0], ans = Integer.MIN_VALUE;

        for (int i = 1; i < nums.length; i++) {
            int tempMin = minF, tempMax = maxF;
            minF = Math.min(Math.min(tempMin * nums[i], tempMax * nums[i]), nums[i]);
            maxF = Math.max(Math.max(tempMin * nums[i], tempMax * nums[i]), nums[i]);
            ans = Math.max(ans, maxF);
        }

        return ans;
    }
}
